package projp2p;

import java.io.*;

/*
 * Classe usada para cronometrar tempos e grava-los em um unico arquivo
 */
public class TimeLogger {

	private static String logDir = (IdentificaOS.isWindows()?"C:\\Tempos":"/opt/grupo05");
	private static String logFile = "tempos.txt";
	
	private String texto;
	private long startTime = 0;
	
	public TimeLogger(String item, boolean start){
		this.texto = item;
		if(start)
			this.start();
	}
	
	public void start(){
		this.startTime = System.nanoTime();
	}
	
	public void stop(){
		if(startTime == 0)
			throw new RuntimeException("Cronometro nao foi inicializado (start())");
		long stopTime = System.nanoTime();
		double delta = (stopTime - startTime)/1000;
		//Agora temos o tempo com precisao de microssegundos
		String unidade = null;
		if(delta < 1000){
			unidade = "us";
		}else if(delta < 1e6){
			delta /= 1000;
			unidade = "ms";
		}else{
			delta /= 1e6;
			unidade = "s";
		}
		try {
			PrintWriter pw = new PrintWriter(new FileWriter(new File(logDir, logFile), true));
			pw.println(String.format("%s:\t%.3f%s", texto, delta, unidade));
			pw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
